#导入milvusClient和DataType模块，用于连接MIilvus服务器并操作数据类型
from  pymilvus import MilvusClient,DataType


#连接Milvus服务器
client = MilvusClient(
    uri="http://49.234.21.142:19530"
)

#创建schema,设置自动生成ID和动态字段特性
schema = MilvusClient.create_schema(
    auto_id = False,
    enable_dynamic_field = True,
)

#添加字段
schema.add_field(field_name="id",datatype=DataType.INT64,is_primary=True)
schema.add_field(field_name="vector",datatype=DataType.FLOAT_VECTOR,dim=5)

#创建集合
client.create_collection(
    collection_name="customized_setup",
    schema=schema,
)
#创建索引
index_params = MilvusClient.prepare_index_params()

#添加索引
index_params.add_index(
    field_name="vector",
    index_type="IVF_FLAT",
    metric_type="COSINE", #距离计算方式(L2(欧式距离)/IP（内积）/COSINE（余弦相似度）)
    index_name="vector_index",
    params={
        "nlist": 128 #聚类中心数(建议值:sqrt(数据量))
    }
)

client.create_index(
    collection_name="customized_setup",
    index_params=index_params,
    sync=False #是否等待所以创建完再返回。默认为True
)


